import { createRouter, createWebHistory, RouteRecordRaw , createWebHashHistory} from 'vue-router'
import { useStore } from 'vuex'

import Layout from '@/layout/index.vue'
import Login from '@/views/Login/index.vue'
import routerPage from './routes'
import Error from '@/views/404.vue'

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    component: Layout,
    redirect:'/login',
    name:"Layout",
    children:routerPage
  },
  {
    path:'/login',
    name:"Login",
    component:Login, //() => import('@/views/Login/index.vue'),
  },
  {
    path:'/:catchAll(.*)',
    name:"404",
    component:Error, //() => import('@/views/Login/index.vue'),
  },
];

const router = createRouter({
  history: createWebHashHistory(process.env.VITE_APP_BASE_URL),
  routes
})
router.beforeEach((to,form,next)=>{
  if(to.path !== '/login'){ // 不在登录页面时
    const store = useStore();
    if(store.getters.getLoginState){
      // 已经登录
      next();
    }else{
      router.replace({path:'/login'});
    }
    // if(localStorage.getItem('v3-element-plus-token')){
    //   // 判断登录状态  存在token
      
    //   if($store.state.user.loginState){
    //     // 已经登录
    //     next()
    //   }else{
    //     // 逻辑 1 ------------------------------------
    //     // 未登录( 刷新时 )  
    //     // 调用getUserInfo 
    //     // 存储 menu 
    //     // 加载路由信息
    //     // 改变 loginState 状态为 true

    //     // 逻辑 2 ------------------------------------
    //     let menu:any = localStorage.getItem('v3-element-plus-menu')
    //     let menuJson = JSON.parse(menu)  // 临时保存menu
    //     if(menu){  // 本地存在menu  加载路由信息
    //       // initRouter(menuJson,undefined)
    //       // menuJson.forEach((rt:any) => {  // 添加路由信息到实例
    //       //     router.addRoute(rt)
    //       // })
    //       // $store.commit('SET_ROUTERS',menuJson)
    //       $store.commit('SET_LOGIN_STATE',true)
    //       next({path:to.path})
    //     }else{
    //       // 不存在菜单 退回login
    //       window.localStorage.clear()
    //       router.push({path:'/login'})
    //     }
    //   }
    // }else{
    //   window.localStorage.clear()
    //   router.push({path:'/login'})
    // }
  }else{  // 登录页面
    next()
  }
});

export default router
